import polyfill from 'assets/plugins/polyfill'
import WxValidate from 'require/WxValidate'
import Http from 'require/index'
import WxService from 'require/WxService'
import Tools from 'require/Tools'
import Config from 'require/config'
import Store from 'require/store'
import Api from 'api/name'
import { formatTime } from 'utils/util'

App({
  onLaunch: function () {
    this.getUserInfo()

  },
  onShow() {
    this.globalData.token = wx.getStorageSync('token')
  },
  globalData: {
    token: '',
    userInfo: null,
    userRole: 1,//1普通 2商铺
    userId: '',
    theme: 1,
    Permission: false,
    phoneCheck:/^1[3456789]\d{9}$/
  },
  getUserInfo() {
    return this.WxService.login().then(data => {
      return this.WxService.getSetting().then(res => {
        if (res.authSetting['scope.userInfo']) {//已授权
          if (this.globalData.token) {
            this.globalData.Permission = true
          } else {
            this.globalData.Permission = false
          }
        } else {//未授权
          this.globalData.Permission = false
        }

      })
    })
  },
  goBack(obj, pageIndex, backIndex) {
    let pages = getCurrentPages(); //获取当前页面pages里的所有信息。
    let prevPage = pages[pages.length - pageIndex]; //prevPage 是获取上一个页面的js里面的pages的所有信息。-2 是上一个页面，-3是上上个页面以此类推。
    // if (JSON.stringify(obj) != '{}') {
    prevPage.changeData(  // 将我们想要传递的参数在这里直接setData。上个页面就会执行这里的操作。
      obj
    )//上一个页面内执行setData操作，将我们想要的信息保存住。当我们返回去的时候，页面已经处理完毕。
    //最后就是返回上一个页面。
    // }
    wx.navigateBack({
      delta: backIndex,  // 返回上一级页面。
      success: function (res) {
      }
    })
  },
  renderImage(path) {
    if (!path) return ''
    if (path.indexOf('http') !== -1) return path
    return `${this.Config.fileBasePath}${path}`
  },
  payOrder(obj, fn) {
    this.Http.http({
      url: this.Api.Prepay,
      method: 'POST',
      params: obj
    }).then(data => {
      fn(data)
    }).catch(err => {
      console.log(err)
    })
  },
  Http: new Http(),
  WxService: new WxService,
  WxValidate: new WxValidate,
  Tools: new Tools,
  Config: Config,
  Api: Api,
  Store: new Store,
  formatTime: formatTime
})